*! 1.0.0 NJC 12 February 2001 
program define _grall 
	version 6
	gettoken type 0 : 0
	gettoken g    0 : 0
	gettoken eqs  0 : 0

	syntax varlist [if] [in] , Cond(string asis) [ SYmbol(str) ]

	if "`symbol'" == "" { local symbol "@" } 
	if index(`"`cond'"',"`symbol'") == 0 { 
		di in r `"`cond' does not contain `symbol'"' 
		exit 198 
	} 	

	tempvar touse
	mark `touse' `if' `in'
	
	quietly {
		* ignore user-supplied `type' 
		gen int `g' = 0 if `touse' 
		tokenize `varlist'
		local nvars : word count `varlist' 
		while "`1'" != "" {
			local Cond : subinstr local cond "`symbol'" "`1'", all  
			replace `g' = `g' + (`Cond') 
			mac shift
		}
		replace `g' = `g' == `nvars' if `touse' 
		compress `g' 
	}
end
